ECS でホストされているアプリケーション を呼び出した際のエラー「Internal server error」について教えてください
困っていた内容
NLB 経由で ECS 内でホストされているアプリケーション を呼び出す処理で、
"message": "Internal server error."
が発生しました。
エラーの発生原因と対処方法を教えてください。
どう対応すればいいの?
エラーメッセージ「Internal server error.」は、 アプリケーションで予期しない状況が生じた場合に発生するエラーです。(資料 [1])
事前に設定変更を行っていないにもかかわらず、再現性がない状態でこのエラーが発生するケースでは、リトライにより一時的なエラーを回避するする、 資料 [2] の手法での対応をご検討ください。
もしリトライ処理を行っても全てのリクエストが失敗するぐらいに、エラーの発生頻度が高いような場合には、 詳細な調査をいたしますので、NLBのログ、ECSのログを添えてお問い合わせください。
参考資料
[1] Amazon ECS の API コールに関する一般的なエラーをトラブルシューティングする
ECS タスク内でホストされているアプリケーションにアクセスしたときに発生する可能性のある、最もよく見られる HTTP 5xx エラーのいくつかを次に示します。
「500 - Internal Server Error」(500 - 内部サーバーエラー): このエラーは、アプリケーションで予期しない状況が生じた場合に発生します。このエラーは、アプリケーションの設定ミス、またはアプリケーションのエラーが原因で発生することがあります。
[2] ジッターを伴うタイムアウト、再試行、およびバックオフ
あるサービスまたはシステムが別のサービスまたはシステムを呼び出すたびに、障害が発生する可能性があります。これらの失敗は、さまざまな要因から発生することがあります。サーバー、ネットワーク、ロードバランサー、ソフトウェア、オペレーティングシステム、またはシステムオペレーターからのミスが含まれます。故障の可能性を減らすようにシステムを設計していますが、故障しないシステムを構築することは不可能です。そのため、Amazon では、障害の可能性を許容して削減するようにシステムを設計し、わずかな割合の障害を完全に停止するまで拡大することを防いでいます。回復力のあるシステムを構築するために、タイムアウト、再試行、およびバックオフの 3 つの重要なツールを採用しています。